#include <stdio.h>
#include <stdlib.h>
#include <inttypes.h>
#include <unistd.h>

// 宏定义，我叫他宏替换。
// 主要用于我们多次用到同一个固定的值，可以用宏替换来做。
// 这里ARRAR_MAX_SIZE就是(10)
#define ARRAR_MAX_SIZE (5)
int main(int argc, char **argv)
{
    // 定义int类型的数组变量，保存ARRAR_MAX_SIZE个int类型的元素。
    // iv数组的空间是连续的，大小为sizeof(int) * ARRAR_MAX_SIZE。iv表示的就是这块连续内存的变量。
    // iv有自己的意义，表示数组内存块首地址。并且没有额外空间保持iv，程序执行器自动获取首地址？
    // iv也能取地址：&iv,并且有&iv值==iv值。
    // 特殊说明：由于没介绍指针，简单说下他们含义。iv表示指向char类型的指针。&iv表示指向char数组的指针。
    int iv[ARRAR_MAX_SIZE];

    // 对每个数组每个元素进行赋值。
    // 这里定义了两个i变量，但他们在for结束时被释放，因此可以这样定义。
    for (int i = 0 /*c99*/; i < ARRAR_MAX_SIZE; i++)
    {
        iv[i] = i + 1;
    }

    // 打印每个元素的值。
    printf("[%s,%d]printf array : \n", __FILE__, __LINE__);
    for (int i = 0 /*c99*/; i < ARRAR_MAX_SIZE; i++)
    {
        printf("%d ", iv[i]);
    }
    printf("\n");

    // 请和。
    int tmpsum = 0;
    for (int i = 0 /*c99*/; i < ARRAR_MAX_SIZE; i++)
    {
        tmpsum += iv[i];
    }
    printf("[%s,%d]sum value=%d\n", __FILE__, __LINE__, tmpsum);
    return 1;
}
